﻿using Bot.Salesforce.Model;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Bot.Salesforce
{
    public interface ISalesforceService
    {
        Task<SalesforceResponse> GetSalesforceObjectsAsync(string host, string refreshToken);
        Task<SalesforceResponse> GetSalesforceFieldsAsync(string sobject, string host, string refreshToken);
        /// <summary>
        /// use in query reference entity
        /// </summary>
        /// <param name="q"></param>
        /// <param name="host"></param>
        /// <param name="refreshToken"></param>
        /// <returns></returns>
        Task<SalesforceResponse> QueryAsync(string q, string host, string refreshToken);
        Task<SalesforceResponse> QueryFirstAsync(string q, string host, string refreshToken);
        Task<SalesforceResponse> SearchFirstAsync(SearchInput input, string host, string refreshToken);
        Task<SalesforceResponse> CreateSObjectAsync(string sobject, string content, bool ifUpdateDup, string host, string refreshToken);
    }
}
